import { ipcMain } from 'electron'
import { shutdown } from 'electron-shutdown-command'

export default row => {
  /**
   * 检查当前窗口的大小
   */
  ipcMain.handle('check-win-status', () => row.mainWindow.isMaximized())
  /**
   * 最小化
   */
  ipcMain.on('windows-win', event => {
    row.mainWindow.minimize()
  })

  /**
   * 最大化和还原窗口
   */
  ipcMain.on('windows-max', (event, status) => {
    !row.mainWindow.isMaximized()
      ? row.mainWindow.maximize()
      : row.mainWindow.restore()
  })

  /**
   * 关闭程序
   */
  ipcMain.on('windows-close', event => {
    // 隐藏窗口
    row.mainWindow.hide()
    // 程序退出
    row.app.quit()
    // 退出程序进程
    row.app.exit()
  })

  /**
   * 隐藏程序到托盘中
   */
  ipcMain.on('windows-min-to-tray', event => {
    row.mainWindow.hide()
  })
  /**
   * 操作系统任务,对系统关机,休眠等操作
   *
   * 默认是关机
   * shutdown 关机命令
   * hibernate 休眠（仅限 Windows）
   * logoff 注销（仅限 Windows）
   * sleep 进入睡眠模式（仅限 macOS）
   * abort 中止当前计划关机
   * reboot 关闭/关闭机器电源
   */
  ipcMain.on(
    'operate-system-shut-task',
    (event, task = 'shutdown', config = {}) => {
      const allConfig = {
        force: true,
        quitapp: !process.env.NODE_ENV === 'development',
        ...config
      }

      shutdown[task](allConfig)
    }
  )
}
